これまでの演習で、提出していない人は、遅れても構わないので、全て出すようにしましょう(2005/11/29)。
各自の提出状況は、提出状況の頁を参照してください。
memoファイルのuploadを忘れていて、link切れになっていました。ご迷惑をおかけして済みません(2005/10/13)。
PS.御指摘して頂くまで気がつきませんでした。連絡してくれた人に改めて感謝します(だって、その人は少くても、このpage見て呉れているってことだよね。公開している身としては嬉しい報せだよね...)。
AL-Mailの異常ですが、必ず起きる問題ではなく、e-mailの内容にも関係することが理解りました。
この結果として、トラブルの部分的な一応の回避策も理解りました。
AL-Mailの異常を経験している方は、申し出て頂ければ、現状の説明をいたします(2005/07/05)。
センターで配布している理工学部のe-mail address ( g130XXXXyy@edu.cst.nihon-u.ac.jp )で利用できるWeb Mail (2005/06/26)。
現在、AL-Mailで、E-mailが送れず、課題が出せないという現象が起きています。正直な所、原因や、対処方法等は、不明なのですが、「課題を出す」という目的であれば、上記のWeb Mailを利用すればよいと思います。
課題の提出について
課題は、次のように提出します。
e-mailの提出先は、次のaddressです。
より、詳しくは、レポートの提出方法を参照してください。
\int_{a}^{b}f(x)dx = \frac{f(a)}{2}+\sum_{i=1}^{n-1}f(a+\frac{i(b-a)}{n}) + \frac{f(b)}{2}
\exp'{x}= \frac{\exp{x+\delta x}-\exp{x}}{\delta x}
\sin{x}= \frac{x}{1!}-\frac{x^3}{3!}+\frac{x^5}{5!}-\frac{x^7}{7!}
プログラム:教科書p.400 ( C言語の場合) (8)
textでは、main関数がありませんが、例えば、次のようなmain 関数 ( 並びに、大域変数の宣言 )をtext p.400のプログラムの前に入れればよいと思います。
#include <stdio.h> #define MM 30 /* <- この数字は、適当 */ extern double nev(double xval,int k,int mm); double x[MM]; double y[MM]; int main() { int k; int i; int m; double xx; printf( "点の個数を入力してください :" ); scanf ( "%d", &k ); for ( i = 0; i < k; i++ ) { printf( "x[%d]=", i ); scanf( "%lf", &x[i] ); printf( "y[%d]=", i ); scanf( "%lf", &y[i] ); } printf( "近似する点の情報を入力してください :" ); printf( "x=" ); scanf( "%lf", &xx ); printf( "k=" ); scanf( "%d", &k ); printf( "m=" ); scanf( "%d", &m ); printf ( "y=%f\n", nev(xx,k,m) ); }
18 10.000 0.173648 20.000 0.242020 30.000 0.500000 40.000 0.642788 50.000 0.766044 60.000 0.866025 70.000 0.939693 80.000 0.984808 90.000 1.0000000 100.000 0.984808 110.000 0.939693 120.000 0.866025 130.000 0.766044 140.000 0.642788 150.000 0.500000 160.000 0.342020 170.000 0.173648 180.000 0.000000
係数:
A =[ 1 3 3 1 ] 3 2 0 2 3 0 3 1 1 2 1 1
答
最大固有値 \lambda_0 = 6.9340
係数:
A =[ 5 4 1 1 ] 4 5 1 1 1 1 4 2 1 1 2 4
答
\lambda_1 = 10 [ 2 ] 2 1 1 \lambda_2 = 5 [ -1 ] -1 2 2 \lambda_3 = 2 [ 0 ] 0 -1 1 \lambda_4 = 1 [ -1 ] 1 0 0
2005/07/19の課題
この日は課題がありませんでした。
A = ( 5 -4 -2 1 ) b = ( 5 ) 2 3 1 2 21 -2 2 8 2 16 4 1 -3 5 18
A = ( 5 -4 -2 1 ) b = ( 5 ) 2 3 1 2 21 -2 2 8 2 16 4 1 -3 5 18
2x+4y+6z=6 3x+8y+7z=15 5x+7y+21z=24
2x+4y+6z=6 3x+8y+7z=15 5x+7y+21z=24
次元: n = 10
係数:
a_10 = 1 a_9 = -2 a_8 = 3 a_7 = -4 a_6 = 5 a_5 = -6 a_4 = 7 a_3 = -8 a_2 = 9 a_1 = -10 a_0 = 11
値:とりあえず、x = 1の時の値を計算してみる。
Textのプログラムに誤りがあります。
関数jacの中で、変数kmaxが初期化されていません。
変数宣言の後にでもkmaxを初期化するコードを入れるとよいでしょう。
kmaxの値を幾つにすべきかはよくわかりませんが。今回の課題の場合は、4次元なので、fill-inがおきません。
したがって、kmax = (n-1)*n/2 = 6で問題ないはずです(が確かめていません.. )。
いずれにせよ、kmaxの大きさは、少し位大きくても問題ないので、例えば、
kmax = n * n;
などとすると良いと思います。
課題が出た時には、「5」と指定されていが、これは、初期値としては、「悪い例」で、本当に「5」で始めると、収束回数は、二分法より悪くなってしまう。
逆に「1」で指定すると、あっと言う間に収束するので、課題としては、「1」の方が、望ましい。
「5」は、ニュートン法の悪い側面を表すと考えてよさそうだ(2005/06/07)
[kurino@a200 tmp]$ cc a.c /tmp/ccU93GVs.o(.text+0x2f): In function `main': : undefined reference to `sin' collect2: ld はステータス 1 で終了しました [kurino@a200 tmp]$
[A] sin/cos/expなど、数学的な関数を利用する場合は、gccのコンパイルの最後に-lmオプションを追加します。
[kurino@a200 tmp]$ cc a.c -lm [kurino@a200 tmp]$
なお、C言語で数学的な関数を使う場合は、プログラムの先頭に
#include <math.h>
も入れておきましょう。